#ifndef STRUCTS_H
#define STRUCTS_H

#define MAX_PATH_SIZE 100
#define MAX_FILEDIR_NAME_SIZE 10
#define MAX_BLOCKS 20
#define BLOCK_SIZE 1024
#define TRUE 1
#define FALSE 0


char labels[30],error[100];
int fdno,maxfd;
int size_meta_header;
int size_of_header_1;
int size_of_header_2;

typedef struct file_descriptor 
{
	int is_dir;
	int fd_id;
	int size;
	char file_name[30];
	char path[100];
	int blockx;
}fd;

typedef struct BST_Node
{
	struct BST_Node *parent;
	struct BST_Node *left;
	struct BST_Node *right;
	char full_path[100];
	fd *file_desc;
}b_node;

typedef struct tree_node 
{ 
fd *data; 
int is_deleted; 
struct tree_node *left_child; 
struct tree_node *right_siblings; 
struct tree_node *parent; 
}t_node; 


typedef struct freelist
{
int no,value;
struct freelist *next;
 }l_node;

typedef struct blocks{
char bsize[1024];
}block;
l_node *start ;
#endif
